perm filename TMP.TMP[MF,DEK]4 blob
sn#557228 filedate 1981-01-22 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 David, Here is a list of what I noticed while going thru all of your .SAI files
C00009 ENDMK
C⊗;
David, Here is a list of what I noticed while going thru all of your .SAI files
on MF,DRF (I checked MFHDR,MFNTRP,MFOUT,MFPRE,MFRAST,ADIS,PRESSO,MFF20,MFFIL,
MFDOVR,MFBASE,MFSYS,and ALFOUT).
Except that I silently updated your files in a few places where mine were more
up to date, because Lyle and I fixed a few problems in the Dover proofmode.
In MFF20, I changed the following comment:
2) begin comment if lookup failed and no explicit directory was given,
2) try default directory <MF>;
In ADIS, I inserted a recent Ramshaw patch:
**** File 1) ADIS.SAI[MF,DEK]/5P/50L
1) adisLIMITS(screenxmin,screenxmax,screenymin,screenymax);
1) comment bitmap region;
**** File 2) ADIS.SAI[MF,DRF]/5P/50L
2) adisLIMITS(screenxmin,screenxmax,screenymin+1,screenymax+1);
2) comment bitmap region;
In ADIS, I seriously question the following (see SAIL manual p50, the
second argument to point( , , ) is an address!)
**** File 1) ADIS.SAI[MF,DEK]/14P/78L
1) get←point(4,rast[xw],-1);
1) adisBOUT(pdepositm);
**** File 2) ADIS.SAI[MF,DRF]/14P/78L
2) IFXMEM var!gets!rast(xtemp,xw); get←point(4,xtemp,-1);
2) ELSEC get←point(4,rast[xw],-1);
2) ENDC
2) adisBOUT(pdepositm);
***************
**** File 1) ADIS.SAI[MF,DEK]/14P/89L
1) begin xw←xw+rspan; get←point(4,rast[xw],-1);
1) end;
**** File 2) ADIS.SAI[MF,DRF]/14P/91L
2) begin xw←xw+rspan;
2) IFXMEM var!gets!rast(xtemp,xw); get←point(4,xtemp,-1);
2) ELSC get←point(4,rast[xw],-1);
2) ENDC
2) end;
***************
In MFSYS, I entered code re errcnt that had been put into my MFSYS recently.
Also in MFSYS, I don't think the TOPS20 version initializes rast when XMEM
is false....
In MFDOVR, there appears to be another bug; doesn't IDPB store into its
first argument? Look what you did!
**** File 1) MFDOVR.SAI[MF,DEK]/3P/104L
1) idpb(rast[wdaddr] lsh shft,bitptr);
1) if ldb(pfield)=4 then
**** File 2) MFDOVR.SAI[MF,DRF]/3P/110L
2) IFXMEM var!gets!rast!lsh!expr(xtemp,wdaddr,shft); idpb(xtemp,bitptr);
2) ELSEC idpb(rast[wdaddr] lsh shft,bitptr);
2) ENDC
2) if ldb(pfield)=4 then
***************
In MFRAST, the following are probably wrong, but they appear only when TOP20
code is driving the Datadisc so they should simply be removed:
**** File 1) MFRAST.SAI[MF,DEK]/11P/60L
1) get←point(4,rast[xw],-1);
1) put←point(32,memory[memory[location(sline)+ddymax-y]+location(dbuf)],-1);
**** File 2) MFRAST.SAI[MF,DRF]/11P/60L
2) IFXMEM var!gets!rast(xtemp,xw); get←point(4,xtemp,-1);
2) ELSEC get←point(4,rast[xw],-1);
2) ENDC
2) put←point(32,memory[memory[location(sline)+ddymax-y]+location(dbuf)],-1);
***************
**** File 1) MFRAST.SAI[MF,DEK]/11P/70L
1) begin xw←xw+rspan; get←point(4,rast[xw],-1);
1) end;
**** File 2) MFRAST.SAI[MF,DRF]/11P/72L
2) begin xw←xw+rspan;
2) IFXMEM var!gets!rast(xtemp,xw); get←point(4,xtemp,-1);
2) ELSEC get←point(4,rast[xw],-1);
2) ENDC
2) end;
***************
In MFOUT, I hope you tried proofmode on both Dover and XGP versions, since there
are so many XMEM changes, but those changes look OK at first glance...
Here's something I decided to put into ALFOUT, because it turns out that you
need two different .REL files on TOPS20 depending on whether XMEM is true or false.
(I also made a corresponding comment at the top of p2 of ALFOUT):
**** File 1) MFOUT.SAI[MF,DEK]/11P/9L
1) ifc WAITS thenc
1) ifc SPECRAST thenc
1) require "alfbig.rel[alf,dek]" load_module; elsec
1) require "alfnrm.rel[alf,dek]" load_module; endc
1) elsec
1) internal procedure clean;; internal procedure boundarize;;
1) internal procedure crscode;;
1) endc
1) procedure alfout # outputs portion of character in crsmode;
**** File 2) MFOUT.SAI[MF,DRF]/11P/9L
2) IFC ALPHATYPEMODE THENC
2) require "ALFOUT.REL" load_module; comment clean, boundarize, crscode;
2) ELSEC
2) internal procedure clean;; internal procedure boundarize;;
2) internal procedure crscode;;
2) ENDC
2) procedure alfout # outputs portion of character in crsmode;
***************